package org.wxl.comment;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;
@Data
public class R {
    private Integer code;//返回的状态码
    private String msg;//返回的信息
    private Boolean success;//返回的成功或者失败的标识符
    private Map<String,Object> data=new HashMap<String,Object>();//返回的数据
    //将构造方法私有，就无法new一个Result对象了
    private R() {}
    //成功静态方法
    public static R ok(){
        R r=new R();
        r.setCode(ResultCode.SUCCESS);
        r.setMsg("操作成功");
        r.setSuccess(true);
        return r;
    }
    //失败静态方法
    public static R error(){
        R r=new R();
        r.setCode(ResultCode.ERROR);
        r.setMsg("操作失败");
        r.setSuccess(false);
        return r;
    }

    //使用下面四个方法，方便以后使用链式编程
    //R.ok().success(true)
    //r.message("ok").data("item",list)
    public R success(Boolean success){
        this.setSuccess(success);
        return this;
    }
    public R message(String msg){
        this.setMsg(msg);
        return this;
    }
    public R code(Integer code){
        this.setCode(code);
        return this;
    }
    public R data(String key,Object value){
        this.data.put(key,value);
        return this;
    }
}
